1. Field of the Invention
This invention relates to the field of communications, and in particular to the field of digital television broadcasts with embedded interactive applications.
2. Description of Related Art
The broadcast of television signals in a digital format provides for the transmission of data packets, as well as the conventional video and audio packets. The data packets may contain ancillary information related to the video and audio packets. The data packets may also contain code that is executable on a computer, such as a set-top box, a computer embedded in the television receiver, or a convention personal computer. By transmitting executable code, a user may interact with the computer in the context of the video and audio information being transmitted. That is, for example, when a product is being advertised, the executable code may be configured to allow the user to place an order for that product.
Conventionally, digital television signals are transmitted as a series of packets that form a transport stream. The MPEG-2 standard includes a means for identifying each packet of digital information as containing video, audio, or interaction information. In a conventional digital television with interactive capabilities, the packets are demultiplexed from the transport stream into separate video, audio, and data streams. The video and audio streams are processed by video and audio decoders, respectively, and the data streams are stored to memory by an application processor, and subsequently launched for execution. The data stream typically consists of multiple packets that form each executable component of code. Typically, the launched executable component effects a display of one or more buttons for subsequent user selection. For example, during a product advertisement, the executable component associated with the advertisement may display a button that reads: "Press here for additional information", or a note that reads: "Press 1 on your remote control to purchase this product". When the user activates the appropriate button, the executable component proceeds to effect the display of additional information. The additional information may be contained within the executable component, or it may be contained in an independent data component or produced by another executable component.
Multiple executable components may be associated with one or more segments of the video or audio streams. For example, on a shopping channel, products are presented sequentially, and a variety of products may be displayed on the television screen at the same time. Each product related executable component in this example would be configured to display a distinct message, such as "Press here to order the bicycle", "Press here to purchase the diamond ring", and so on. The executable components may be independent, or they may be components of a larger application. For example, a general purpose application may be associated with a particular selling program that contains the commonly used code for securing credit card information and the like, and each product related executable component is designed to be a part of the general application program.
To synchronize the execution of each executable component, queue markers are placed in the video stream. A first queue marker is used to notify the application processor when to start a particular executable component, and another queue marker identifies when the application processor may terminate the executable component and remove the component from memory. This synchronization process, however, is problematic. The detection of queue markers in the video streams requires a continual monitoring of the stream for these markers, which increases the complexity of the video processor, and may impact the overall performance and cost of the interactive television system.
Most video streams conform to protocols, such as MPEG, that compensate for bandwidth congestion by dynamically adjusting the content of each video frame. In such protocols, information in the video frames will be discarded whenever there is insufficient bandwidth to transmit the frames in their entirety. Thus, there is a likelihood that one or more queue markers in the original encoding of the video stream will be discarded or lost through the encoding-transmission-decoding process associated with conventional digital television broadcasting. If an initial queue marker is missing, the execution component will not be launched; if the terminal queue marker is missing, the component will remain active outside the context of the video stream. A similar difficulty will arise when a user changes the source of the transport stream, for example, by changing channels on the television receiver. If the terminal queue marker is missing because the user changed the channel before the corresponding advertisement ends, the execution component will remain active outside the context of the video stream. The user will be given the option, for example, of purchasing an item without a corresponding video reference to the item. Therefore, a need exists for a means of initiating and terminating each execution component that is independent of the received video stream.